package com.bawei.module_detail.state

import com.bawei.lib_common.entity.SendCommentBody
import com.bawei.lib_common.entity.SendCommentEntity
import com.bawei.lib_common.entity.VideoCommentEntityItem
import com.bawei.module_detail.intent.VideoDetailIntent
import com.bawei.module_detail.model.entity.BulletEntityItem
import com.bawei.module_detail.model.entity.LikeCollectEntity
import com.bawei.module_detail.model.entity.MovieEntityItem
import com.bawei.module_detail.model.entity.ReplyBody
import com.bawei.module_detail.model.entity.ReplyEntity
import com.bawei.module_detail.model.entity.SendBulletEntity
import com.bawei.module_detail.model.entity.VideoCollectionEntityItem
import com.bawei.module_detail.model.entity.VideoLoveEntityItem

sealed class VideoDetailState {
    /**
     * 获取视频推荐成功
     */
    data class VideoRecommendSuccess(val list: List<MovieEntityItem>?) : VideoDetailState()
    /**
     * 获取评论成功
     */
    data class VideoCommentSuccess(val list: List<VideoCommentEntityItem>?) : VideoDetailState()
    /**
     * 发送评论成功
     */
    data class SendCommentSuccess(val msg: SendCommentEntity) : VideoDetailState()
    /**
     * 删除评论成功
     */
    data class DeleteCommentSuccess(val msg: Boolean) : VideoDetailState()
    /**
     * 回复评论成功
     */
    data class ReplyCommentSuccess(val msg: ReplyEntity) : VideoDetailState()
    /**
     * 删除回复成功
     */
    data class ReplyDeleteSuccess(val msg: Boolean) : VideoDetailState()
    /**
     * 获取弹幕成功
     */
    data class GetBulletSuccess(val list: List<BulletEntityItem>?) : VideoDetailState()
    /**
     * 发送弹幕成功
     */
    data class SendBulletSuccess(val msg: SendBulletEntity) : VideoDetailState()
    /**
     * 点赞成功
     */
    data class AgreeVideoSuccess(val msg: LikeCollectEntity) : VideoDetailState()
    /**
     * 取消点赞成功
     */
    data class CancelAgreeVideoSuccess(val msg: Boolean) : VideoDetailState()
    /**
     * 检查是否点赞成功
     */
    data class CheckAgreeVideoSuccess(val msg: List<VideoLoveEntityItem>) : VideoDetailState()
    /**
     * 收藏成功
     */
    data class CollectVideoSuccess(val msg: LikeCollectEntity) : VideoDetailState()
    /**
     * 取消收藏成功
     */
    data class CancelCollectVideoSuccess(val msg: Boolean) : VideoDetailState()
    /**
     * 检查是否收藏成功
     */
    data class CheckCollectVideoSuccess(val msg: List<VideoCollectionEntityItem>) : VideoDetailState()
    /**
     * 获取失败
     */
    data class Failed(val msg: String) : VideoDetailState()

    /**
     * 空数据
     */
    object Empty : VideoDetailState()

    /**
     * 初始情况
     */
    object Init : VideoDetailState()
}